#!/usr/bin/env python3

import logging
logging.getLogger('scapy.runtime').setLevel(logging.ERROR)
from scapy.all import *

def arp_one(dst_ip,queue=None,ifname="ens33"):
	capture_data = srp(Ether(dst="FF:FF:FF:FF:FF:FF")/
					ARP(op=1,hwdst="00:00:00:00:00:00",pdst=dst_ip),
					timeout=1,iface=ifname,verbose=False)
	capture_data = capture_data[0].res#res表示将有接收数据部分的内容列式化
	#
	try:
		if queue==None:
			#得到接收数据部分的接收数据，得到ARP层结果，以列表方式呈现
			print(capture_data)
			return capture_data[0][1].getlayer(ARP).fields['hwsrc']
		else:
			queue.put((dst_ip,capture_data[0][1].getlayer(ARP).fields['hwsrc']))
	except:
		return

if __name__ == "__main__":
	#arp_one('192.168.1.6')
	import sys
	print(sys.argv[1])
	test_arp = arp_one(sys.argv[1])
	print(sys.argv[1] + '--->' + test_arp)
